SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[spForzarReubicaciones]
@idReubicacion Int,
@Usuario Int
AS
SET NOCOUNT ON
Begin Transaction

Declare @ErrorC Int
Declare @idMovimiento Int, @Servicio Int, @SubServicio Int, @Fecha Datetime, @PlazaOrigen Int, @PlazaDestino Int, @Error Varchar(50)

Declare Movimientos Cursor For
	Select idMovimientoDeReubicacion, Servicio, idSubServicio, Fecha, PlazaOrigen, PlazaDestino, Error
	From tb_MovimientosDeReubicacion Where Reubicacion = @idReubicacion And Ejecutado = 'N' 

Open Movimientos 

Fetch Next From Movimientos Into @idMovimiento, @Servicio, @SubServicio, @Fecha, @PlazaOrigen, @PlazaDestino, @Error

Select @ErrorC = 0

While @@Fetch_Status = 0
Begin
	Print '1 Movimiento'
	Exec spEjecutarMovimientoDeReubicacion @idMovimiento
	Select @ErrorC = @@Error
	If @ErrorC <> 0
		Goto SALIR

	Update tb_MovimientosDeReubicacion Set Ejecutado = 'S'  Where	 idMovimientoDeReubicacion = @idMovimiento
	Select @ErrorC = @@Error
	If @ErrorC <> 0 
		Goto SALIR

	--Insert tb_RegistroDeEventos Select Getdate(), @Usuario, 10, 0, 'Forzar movimiento de reubicacion', Null, @Error + ' - idMovimientoDeReubicaciones ' + Convert(Varchar, @idMovimiento)
	--Select @ErrorC = @@Error
	--If @ErrorC <> 0
	--	Goto SALIR

	Fetch Next From Movimientos Into @idMovimiento, @Servicio, @SubServicio, @Fecha, @PlazaOrigen, @PlazaDestino, @Error
End

Update tb_Reubicaciones Set Estado = 4 Where idReubicacion = @idReubicacion

Close Movimientos
Deallocate Movimientos

SALIR:

If @ErrorC = 0
Begin	Commit Transaction
	Print 'OK'End
Else
Begin
	Rollback Transaction
	Print 'No'
End
GO
